In many electronic devices FPGAs are widely used for a variety of tasks taking advantage of aspects such as their processing power, re-configurability and flexibility in the design process. Furthermore, design tradeoffs in the FPGA circuit configuration affect power consumption, data throughput and processing rate. While the amount of gates and feature operations are constantly increasing, FPGAs consume significant and increasing amount of power. Hence, when designing circuits using FPGAs it is important to properly design the system to supply sufficient power and cooling to ensure correct operation. However, today's oversized power and cooling leads to increased power loss and lower efficiency of the overall system.
Prior art systems have addressed the issue of automatically adjusting the Vdd of a signal processing circuit by discriminating the slack time compared to a reference clock, e.g. U.S. Pat. No. 7,117,378, Adaptive voltage scaling digital processing component and method of operating the same. However the FPGA system designer is unable to apply this to understand how to optimise the system for power consumption or performance. For example, such a method would optimize the Vdd for a target clock frequency but the FPGA system designer would benefit from knowing the power consumption profile over time and could use that information to inform the design process of the system incorporating the FPGA. The aforementioned prior art does not address this important issue.
The prior-art method of determining power consumption information used to inform the design process of the system incorporating the FPGA is to estimate the power consumption using software based design estimation algorithms, which are limited in accuracy.
Prior-art profilers are limited in that they profile cycle-counts for execution of code segments on FPGA based soft processors. A typical example is disclosed in: M. Aldham, J. H. Anderson, S. Brown, A. Canis, “Low-Cost Hardware Profiling of Run-Time and Energy in FPGA Embedded Processors,” IEEE International Conference on Application-specific Systems, Architectures and Processors (ASAP), Santa Monica, Calif., September 2011. Accurate power profiles corresponding to the respective code segments are not available using such techniques. The addition of power measurement circuits may increase power losses, which is undesirable.
Managing the power in a system utilizing FPGAs involves limited, centralized power management to a diverse set of Point of Load regulators (POLs) and Low Drop Out regulators (LDOs) with little or no interaction, communication or processing involved in the power management aspect of the system, for example: Altera, Voltage Regulator Selection for FPGAs, White Paper, November 2008, ver. 1.0. Therefore the ability to optimize such systems using a co-design methodology is limited.
Therefore what is required is a solution whereby the designer applying FPGAs in their circuits and systems can accurately assess the FPGA power consumption in real time and be provided with the information and data required to take steps to optimize the power consumption of the system through a method of hardware-firmware-power co-design.
This solution is achieved with an FPGA power management system according to the independent system claim. Dependent claims relate to further aspects of the invention.
The present invention relates to an FPGA power management system comprising a host power management integrated circuit connected to a system power control block of an FPGA via an FPGA configuration/monitoring bus and a computing device via a power configuration/monitoring bus.
The host power management integrated circuit comprises a configuration and monitoring block configured to communicate configuration/monitoring signals to and from the FPGA system power control block and the computing device. The host power management integrated circuit further comprises at least one voltage regulator for supplying an output voltage to an FPGA power rail according to a power configuration signal communicated by the configuration and monitoring block. The host power management integrated circuit further comprises a power profiler configured to measure and supply to the configuration and monitoring block an output current on the FPGA power rail.
The FPGA system power control block is configured to coordinate and execute a transfer of required communications between the FPGA and the host power management integrated circuit.
The computing device comprises a display and an input device for monitoring and controlling aspects of an FPGA operation.
The monitoring aspects may comprise dynamic and average current consumption on the FPGA power rail.
For that purpose, the power profiler may be configured to supply cycle-by-cycle dynamic current measurements and average currents to the configuration and monitoring block.
Thus, the FPGA system designer is able to configure the FPGA circuits and power supplies over the FPGA configuration/monitoring bus and the power configuration monitoring bus and monitors the system operation by use of the computing device with connected monitor and input devices.
As a method of co-design, the FPGA system designer is thus able to monitor aspects of the FPGAs operation such as dynamic and average current consumption of the power rail.
The co-design aspect relates to the FPGA system designer acting on the information received in order to alter the FPGA configuration or power. For example, the FPGA system designer may compare the power profiles of two embodiments of a function in the FPGA; one embodiment implemented in firmware on a soft processing core on the FPGA; the other embodiment implemented as clocked registers and logic on the FPGA, and may choose one or the other embodiment for final implementation based upon the preferred power consumption or power profile. In this way the thermal and power needs of the FPGA may be optimized.
Furthermore, the FPGA system designer may use the information to decide to clock parts of the FPGA circuits from different clock frequencies to optimise power and execution speed. Furthermore, the FPGA system designer may configure the power supplies for lower or higher voltage levels in order to optimise power and execution speed. In this way a co-design method allows the FPGA system designer to optimise the power and configuration of the FPGA design to meet design objectives based upon feedback supplied to the FPGA system designer.
The FPGA power management system may be integrated in a co-design environment comprising FPGA design tools and power design tools. The FPGA design tools and the power design tools may run simultaneously or within the same environment or application on the computing device with connected monitor and input devices
The FPGA power managements system can automatically adjust within limits to e.g. firmware upgrades, which may be implemented during live time of the end-product on the fly.
One aspect of the present invention relates to an optimal power generation. The system power control block of the FPGA may further optimize energy efficiency by providing power demand information to the host power management integrated circuit, which can adjust power levels to the actual needs. While knowing the actual power need upfront, the host power management integrated circuit can prepare power needs ahead of time. This may result in additional energy savings. Vice versa the FPGA device can perform system power management and system power optimization. The system power control block of the FPGA may be a soft block or a hard block.
One aspect of the present invention relates to the computing device. Code running on the computing device with connected monitor and input devices may guide the FPGA system designer by displaying prompts and suggested values for configuration of the FPGA and power controllers in order to optimize a system parameter such as power losses or thermal dissipation.
In yet another embodiment said code may adjust the configuration of the FPGA and power controllers automatically.